
package w83a.w83aUtilidadesComunes;


import java.util.Date;

public class W83AStringUtil {//NOPMD
	
	public static String eliminarblancos(String entrada){//NOPMD
		int i;
		for (i=0;  i<entrada.length() && entrada.charAt(i)==' ';i++){
			
		}
		 entrada=entrada.substring(i);
		return entrada;
	}
	
	public static String toString(int value,int longitud){
		StringBuffer result=new StringBuffer("");
		
		result.append(value);
		
		while(result.length()<longitud)
		{
			result.insert(0," ");
		}
		return result.toString();
		
	}
	
	public static String toString(long value,int longitud){
		StringBuffer result=new StringBuffer("");
		
		result.append(value);
		
		while(result.length()<longitud)
		{
			result.insert(0," ");
		}
		return result.toString();
		
	}
	
	public static String toStringNumerico(String value,int longitud){
		StringBuffer result=new StringBuffer("");
		
		result.append(value);
		
		while(result.length()<longitud)
		{
			result.insert(0,"0");
		}
		return result.toString();
		
	}
	public static String obtenerPatron(String texto,String patron){
		String result="";
		String cabecera ="<!-- "+patron;
		String cola = patron+" -->";
		int indice=texto.indexOf(cabecera);
		if (indice!=-1){
			String result2=texto.substring(indice+cabecera.length());
			indice=result2.indexOf(cola);
			if (indice!=-1){
			result=result2.substring(0,indice);
			}else{
				result="";
			}
		}
		else{
			result="";
		}
    	return result;
	}
	public static String obtenerPatronInicioFin(String texto,String patronInicio, String patronFin){
		String result="";
		String cabecera ="<!--"+patronInicio+"-->";
		String cola = "<!--"+patronFin+"-->";
		int indice=texto.indexOf(cabecera);
		if (indice!=-1){
			String result2=texto.substring(indice+cabecera.length());
			indice=result2.indexOf(cola);
			if (indice!=-1){
				result=result2.substring(0,indice);
			}else{
				result="";
			}
		}
		else{
			result="";
		}
		
		return result;
	}
	
	public static String obtenerPatronInicioFinSinComent(String texto,String patronInicio){
		String result="";
		String cabecera ="<"+patronInicio+">";
		String cola = "</"+patronInicio+">";
		int indice=texto.indexOf(cabecera);
		if (indice!=-1){
			String result2=texto.substring(indice+cabecera.length());
			indice=result2.indexOf(cola);
			if (indice!=-1){
				result=result2.substring(0,indice);
			}else{
				result="";
			}
		}
		else{
			result="";
		}
		
		return result;
	}
	
	
	public static String obtenerPatronInicioFinSinComent2(String texto,String patronInicio){
	
	    		  W83aClsTrazas.trazaError(null,"obtenerPatronInicioFinSinComent2 stringOut.toString()="+texto,null );
	
		String result="";
		String cabecera ="<"+patronInicio;
		W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@cabecera obtenerPatronInicioFinSinComent2@@@@@@@@@@@@="+cabecera);
		String cola = "</"+patronInicio+">";
		W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@cabecera cola@@@@@@@@@@@@="+cola);
		int indice=texto.indexOf(cabecera);
		W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@cabecera indice@@@@@@@@@@@@="+indice);
		if (indice!=-1){
			String result2=texto.substring(indice+cabecera.length());
			W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@result2 obtenerPatronInicioFinSinComent2@@@@@@@@@@@@="+result2);
			int indice2=result2.indexOf("CN", 0);
			W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@indice2 obtenerPatronInicioFinSinComent2@@@@@@@@@@@@="+indice2);
			if (indice2!=-1){
				String result3=result2.substring(indice2);
				W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@result3 obtenerPatronInicioFinSinComent2@@@@@@@@@@@@="+result3);
				indice=result3.indexOf(cola);
				if (indice!=-1){
					result=result3.substring(0,indice);
				}else{
					result="";
				}
			}
			else{
				result="";
			}
		}
		else{
			result="";
		}
		
		return result;
	}
	
	
	public static String obtenerNombreFicheroVuelta(String nombreFichero) throws W83aException{
	    StringBuffer result=new StringBuffer("");
	    String aux="";
	    String codTerritorio;
	    String numCorrelativo;
		Date fecha=new Date();
	    
	    aux=nombreFichero.substring(nombreFichero.indexOf('_')+1);
	    codTerritorio=aux.substring(0,aux.indexOf('_'));
	    aux=aux.substring(aux.indexOf('_')+1);
	    aux=aux.substring(aux.indexOf('_')+1);
	    numCorrelativo=aux.substring(0,aux.indexOf('_'));
   if (("").equals(aux))
	    {
	    	throw new W83aException("Error al obtener el nombre del fichero");
	    }else{
		    try{
		    result.append(W83aClsConstantes.PREFIJO_FICHERO_VUELTA);
		    result.append("_").append(codTerritorio).append("_").append(numCorrelativo);
		    result.append("_").append(W83ADateUtils.getStringFromDate(fecha, W83ADateUtils.PATTERN_FICHERO));
		    }
		    catch(Exception e){
		    	throw new W83aException("Error al obtener el nombre del fichero");
		    }
	    }
	    return result.toString();
		
	}
	public static String obtenerCodSindiNomFich(String nombrefichero){//NOPMD
		String codSindi="";
		for (int i=0;i<2;i++){
			nombrefichero=nombrefichero.substring(nombrefichero.indexOf("_")+1);	
		}
		codSindi=nombrefichero.substring(0,3);
		return codSindi;
	}
	public static String anadirCodSindiNomFich(String nombrefichero,String codSindi){
		StringBuffer sol=new StringBuffer();
		sol.append(nombrefichero.substring(0, 14));
		sol.append(codSindi).append("_");
		sol.append(nombrefichero.substring(14,nombrefichero.length()));		
		return sol.toString();
	}
	
	
}
